package cn.tedu.apiday04;

import java.io.*;
import java.util.Scanner;

public class CopyAction {//字符流版本测试文件复制

    public static void main(String[] args) throws IOException {
        //1 接收用户输入的源文件路径
        String s = new Scanner(System.in).nextLine();
        File file = new File(s);
        //2 接收用户输入的目标文件路径
        String s1 = new Scanner(System.in).nextLine();
        File file1 = new File(s1);
        //3 调用指定方法完成复制
        copy(file,file1);

    }

    private static void copy(File file, File file1) throws IOException {
        //读取源文件
        Reader in1= new BufferedReader(new FileReader(file));
        //写出目标文件
        Writer w = new BufferedWriter(new FileWriter(file1,true));
        //边读边写
        //目前是一个字符一个字符的读写，为了优化单个字符的读写效率，我们也可以批量读写，如果是字符流，维护一个字符数组
        char[] buf = new char[8*1024];
        int a =0;
        while ((a=in1.read(buf) )!= -1){//优化成一个数组一个数组的读取
            //w.write(buf,0,a);第一个参数是指要写出哪个数组的数据，第二个参数是指从哪个位置开始写出数据，第三个参数是指要写出的数据长度
              w.write(buf,0,a);//优化成一个数组一个数组的写出，必须用三个参数的，不然会多复制数据的

        }
        in1.close();
        w.close();


    }

}
